package com.dayu.recovery.mapper;

import java.util.List;
import com.dayu.recovery.domain.RecoveryBill;
import com.dayu.recovery.domain.RecoveryData;
import com.dayu.recovery.domain.export.BillAndCollectExport;

/**
 * 财务账单Mapper接口
 * 
 * @author HK
 * @date 2021-04-16
 */
public interface RecoveryBillMapper 
{
    /**
     * 查询财务账单
     * 
     * @param billId 财务账单ID
     * @return 财务账单
     */
    public RecoveryBill selectRecoveryBillById(Long billId);

    /**
     * 财务账单列表，个人专用
     * @param recoveryBill
     * @return
     */
    public List<RecoveryBill> selectRecoveryBillBySellList(RecoveryBill recoveryBill);

    /**
     * 查询财务账单列表
     * 
     * @param recoveryBill 财务账单
     * @return 财务账单集合
     */
    public List<RecoveryBill> selectRecoveryBillList(RecoveryBill recoveryBill);

    /**
     * 新增财务账单
     * 
     * @param recoveryBill 财务账单
     * @return 结果
     */
    public int insertRecoveryBill(RecoveryBill recoveryBill);

    /**
     * 修改财务账单
     * 
     * @param recoveryBill 财务账单
     * @return 结果
     */
    public int updateRecoveryBill(RecoveryBill recoveryBill);

    /**
     * 删除财务账单
     * 
     * @param billId 财务账单ID
     * @return 结果
     */
    public int deleteRecoveryBillById(Long billId);

    /**
     * 批量删除财务账单
     * 
     * @param billIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteRecoveryBillByIds(Long[] billIds);

    /**
     * 批量出售商品
     * @param list
     * @return
     */
    public int insertBillByList(List<RecoveryBill> list);

    /**
     * 成本 销售 利润
     * @param bill
     * @return
     */
    public RecoveryData selectRecoveryData(RecoveryBill bill);

    /**
     * 批量审核
     * @param list
     * @return
     */
    public int updateRecoveryBillByList(List<RecoveryBill> list);

    /**
     * 导出数据
     * @param bill
     * @return
     */
    public List<BillAndCollectExport> selectRecoveryBillListExport(RecoveryBill bill);
}
